Smart routing for audio output devices

ABSTRACT

A system and method for routing communication to a common audio output device connected to each of two or more audio signal source devices. For each of the two or more audio signal source devices, a set of inputs are assessed. The set of inputs include: an operational state of the audio signal source device, an activity the audio signal source device, an audio-producing application being executed by the audio signal source device, and a degree of user activity with the audio-producing application being executed by the audio signal source. At a point in time, an audio routing score is generated for each of the two or more audio signal source devices according to a weighted calculation of the set of inputs based on the assessing. Finally, an audio signal routing decision is made, to route an audio signal from one of the two or more audio signal source devices to the audio output device, based on the audio routing score for each of the two or more audio signal source devices.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 63/042,408, entitled “Smart Routing For Audio OutputDevices,” filed Jun. 22, 2020, hereby incorporated by reference in itsentirety and for all purposes.

TECHNICAL FIELD

The subject matter described herein relates to audio output devices, andmore particularly to smart routing of multiple sources of wireless audiosignals to a commonly-shared audio output device.

BACKGROUND

Many electronic devices today can connect wirelessly with audio outputdevice, which are mainly peripheral devices such as earphones. One typeof earphone that is very popular today are known as wireless “earbuds,”i.e., small earphones that are fitted directly into a user's ears, andtypically into the user's ear canal, such as AirPods® designed and soldby Apple Inc. of Cupertino, Calif., which are a very popular wirelessperipheral device for receiving and outputting audio signals from one ormore audio signal sources over a wireless channel such as Bluetooth.

The audio signal sources can be one or more of a smart phone, such as aniPhone, a smart watch such as an Apple Watch, a tablet computer such asan iPad, and a laptop or desktop computer, such as a MacBook or iMac,respectively, and as an example only. Each audio signal source that usesa wireless channel has an operating system that governs the operationsand connectivity of the audio signal source with any of a number ofperipheral audio output devices over one or more wireless channels thatoperate according to a wireless communication protocol. Popular wirelesschannels and protocols include the wireless technology standard known as“Bluetooth” (BT), which can have a number of variations, such as BTClassic and BT Low Energy (LE). Other wireless technology includes WiFiand cellular communications.

An audio output device such as Apple's AirPods can be simultaneouslyconnected with multiple audio signal sources. For instance, theBluetooth specification allows for a Bluetooth-enabled device todiscover other devices with which to connect, with the discoveringdevice being prioritized over the discovered device. However, as apractical matter, and for the best user experience, an audio outputdevice is configured to only communicate with one of the connected audiosignal sources at a time, i.e., to receive audio signals from only thatone audio signal source. Yet, if the communication is untimely switched,i.e. without the user's knowledge, consent or understanding, or withoutthe proper replacement audio stream, the user experience of audio outputmay suffer.

Further complicating such multiple connectivity is that the devices,whether audio output devices or audio signal source devices, might bedriven by different operating platforms, i.e. including operating systemsoftware and firmware, and those operating systems support manydifferent applications that provide audio signals destined for the audiooutput device. For example, Mac computers use MacOS and mobileelectronic devices such as iPhones and Apple Watches use iOS. Theseoperating systems, and other operating systems, register applicationsdifferently. Additionally, requiring a user of an audio output device tomake numerous inputs and configuration changes will complicate andlessen the quality of the user experience.

While some audio output devices, such as a set of AirPods, can supporttwo simultaneous connections, and therefore cannot have more than twodevices connected at the same time, a challenge is when a third audiosignal source enters the communication network. As an example, if one'sAirPods are connected to an iPhone, and an iPad is suddenly physicallypresent and tries to connect with the AirPods, logic embedded in theAirPods' operating system will cause the AirPods to disconnect from theiPhone to connect and receive audio signals from the iPad.

Accordingly, given a need for an audio output device to support multipleaudio signal source devices, the collection of which may use differentoperating systems having logic to dictate a prioritization scheme and/orscheduling scheme as to which audio signal source to connect with theaudio output device, a challenge exists for implementing a connectionprioritization and/or scheduling scheme, without the need to change toomuch operating system code or firmware. This is particularly so as mostof the devices will have already been shipped to the market and in-use,and may not have enough “patch” space in local memory to update eitherthe operating system or the firmware.

Consider a triangle connectivity scenario 100, depicted in FIG. 1A, of asmart phone 102 and a smart watch 104 as audio signal source devices,based on applications they run like audio streaming and voicecommunication services. Both audio signal sources can be runningvariations of a common operating system, and can be connected to earbuds106, which function as an audio output device for the smart phone 102and the smart watch 104. The operating systems of the devices 102, 104and 106 coordinate to govern connectivity and communication using a“triangle” table and routing prioritization scheme. In oneimplementation of this scenario 100, the watch 104 will not establishcommunication with the earbuds 106 until it is instructed to by thephone 102, which thereafter allows the phone to discontinuecommunication with the earbuds 106, without any major disconnections.

However, consider a more complex triangle connectivity scenario 120,depicted in FIG. 1B, where the number and types of audio signal sourcedevices 122 that establish a connection with an audio output device 124can vary greatly. For instance, the audio signal source devices 122 canbe a smart watch, a smart phone, a tablet computer, a laptop computer,etc., each having a number of audio-producing applications and possiblydifferent operating systems or operating platforms. In this scenario120, there is currently no system or process in place to make routingdecisions. In another scenario 130, shown in FIG. 1C, an audio outputdevice 132 can move from being in range and connected with a first audiosignal source device 134, such as a smart phone within a home office,for example, to being in range and connected with a second audio signalsource device 136, such as a tablet computer within a living room, forexample.

What is needed is a mechanism and technique for deciding, arbitratingand/or routing audio signal sources from among multiple devices to acommon audio output device with no degradation in the user experience orquality of the connections between and among the devices.

SUMMARY

This document describes a system and method to provide a seamless“smart” routing of audio output experience across devices and platforms.

In one aspect, a method, as well as a system that executes the method,is executed by two or more audio signal source devices for routingcommunication to a common audio output device connected to each of theaudio signal source devices. The method include assessing, for each ofthe two or more audio signal source devices, a set of inputs comprisingan operational state of the audio signal source device, an activity theaudio signal source device, an audio-producing application beingexecuted by the audio signal source device, and a degree of useractivity with the audio-producing application being executed by theaudio signal source. The method further includes generating, at a pointin time, an audio routing score for each of the two or more audio signalsource devices according to a weighted calculation of the set of inputsbased on the assessing. The method further includes determining an audiosignal routing decision to route an audio signal from one of the two ormore audio signal source devices to the audio output device, based onthe audio routing score for each of the two or more audio signal sourcedevices

Implementations of the current subject matter can include, but are notlimited to, methods consistent with the descriptions provided herein aswell as articles that comprise a tangibly embodied machine-readablemedium operable to cause one or more machines (e.g., computers, etc.) toresult in operations implementing one or more of the described features.Similarly, computer systems are also described that may include one ormore processors and one or more memories coupled to the one or moreprocessors. A memory, which can include a non-transitorycomputer-readable or machine-readable storage medium, may include,encode, store, or the like one or more programs that cause one or moreprocessors to perform one or more of the operations described herein.Computer implemented methods consistent with one or more implementationsof the current subject matter can be implemented by one or more dataprocessors residing in a single computing system or multiple computingsystems. Such multiple computing systems can be connected and canexchange data and/or commands or other instructions or the like via oneor more connections, including but not limited to a connection over anetwork (e.g. the Internet, a wireless wide area network, a local areanetwork, a wide area network, a wired network, or the like), via adirect connection between one or more of the multiple computing systems,etc.

The details of one or more variations of the subject matter describedherein are set forth in the accompanying drawings and the descriptionbelow. Other features and advantages of the subject matter describedherein will be apparent from the description and drawings, and from theclaims. The claims that follow this disclosure are intended to definethe scope of the protected subject matter.

DESCRIPTION OF DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, show certain aspects of the subject matterdisclosed herein and, together with the description, help explain someof the principles associated with the disclosed implementations. In thedrawings,

FIGS. 1A-1C illustrate various scenarios of operation between two ormore audio signal source devices and a common audio output device;

FIG. 2 is a matrix illustrating auto-routing arbitration that can beemployed among multiple audio signal source devices;

FIGS. 3A-3C illustrate a scenario, an operational sequence, and userinterfaces for user interaction, respectively, for opportunisticconnection by a second audio signal source device to an audio outputdevice that is already connected in a triangle connectivity scenariowith other first audio signal source devices; and

FIGS. 4A-4F illustrate various use cases of a smart routing methodaccording to and consistent with implementations described herein.

When practical, similar reference numbers denote similar structures,features, or elements.

DETAILED DESCRIPTION

This document discloses a system and method to provide a seamless“smart” routing experience across devices and platforms, by generate anaudio routing score. The system and method can be implemented as, orincorporate an algorithm, running constantly while an audio signalsource device is on and/or active. The system and method can operateautomatically when each device is in use, or can be overridden by manualoperation of a device by a user making manual configurations to outputan audio signal, such as with an audio output device that isincompatible with an operating system of the audio signal sourcedevices.

In basic terms, the algorithm is executed by two or more audio signalsource devices to: 1) determine which audio output device is nearby orwithin range; 2) determine which other signal source device(s) arenearby or within range and active; 3) generate an audio routing scorefor each audio signal source device to determine which audio signalsource device is selected for communicating an audio signal to the audiooutput device.

In some implementations, an audio routing score can be qualitative orquantitative. Each of the audio signal source devices and the audiooutput device has an address and/or device identifier for establishing awireless connection. The identifier can be used for encryptingcommunication between devices, and for allowing the communication in thefirst place. The audio routing score can take into account a presentactivity of an audio signal source device, which can be measured in suchways as, without limitation, whether an interactive display screen ofthe audio signal source device is on or off, and/or whether theinteractive display screen has been interacted with within apredetermined timeframe, and to what extent the interaction is takingplace.

For instance, interaction with an audio generating application can takepriority over interaction with an application that does not generate anyaudio for output. The factors used by the audio routing scoringalgorithm can be collected by continual scans of active devices within apredetermined range, which can be a range of a wireless communicationtechnology being used to stream audio, for example. The audio routingscore is configured to minimize disruption of an ongoing audio signalfor a user, or to enhance the user experience with their audio outputdevice, such as headphones, earbuds or speakers.

The following table represents a particular exemplary implementation,using example variables, ranges, and user activites/interactions witheach of a number of audio signal source devices, for routing an audiosignal to a commonly connected audio output device, such as a pair ofearbuds:

TABLE 1 Score Calculation Input UNKNOWN Operating system/firmware isincompatible/ External speaker is connected IDLE Screen off, but useractivity <25 seconds Screen on, but user interacted >8 minutes LOWScreen off, but 25 seconds since user activity Screen on, but userinteracted within 25 seconds - 8 minutes MEDIUM Audio is playing HIGHScreen on and user interacted with device <25 seconds CRITICAL High useractivity within first 5 seconds

In the example, the audio routing score is qualitatively rated from“unknown” to “critical,” in an ascending preferential order, i.e. fromlowest priority to highest priority. The audio routing score of“unknown” is designated if an audio signal source device has anoperating system that is incompatible with either other audio signalsource devices, or the audio output device. Alternatively, if an audiooutput device is already connected to a device using an incompatibleoperating system, then the audio routing score is low so as to allowthat connection to be maintained. The audio routing score of “idle”indicates that, based on a combination of whether a device screen(interactive display) is on or off, and user activity (duration and/ortime since last activity). While less than 25 seconds is designated as atime frame since last user interaction when the screen is “off,” andmore than 8 minutes is designated as a time frame since last userinteraction when the screen is “on,” other time frames can be used,particularly depending on what is determined to be an optimal userexperience with the audio signal source device. The audio routing scoreis gradually upgraded based on other, narrower ranges of user activitywith the audio signal source device, and whether an audio signal isbeing generated on the audio signal source device, the lattercalculation input being provided greater weight in the exemplaryimplementation.

Accordingly, in some implementations, an audio routing score used forsmart routing of audio signals from two or more audio signal sourcedevices to a commonly connected or connectable audio output device canbe based on a weighted or unweighted consideration of one or more of thefollowing, which can be tracked by a device's operating system and/orfirmware:

-   -   whether an audio signal source device is locked;    -   whether a screen of an audio signal source device is on or off;    -   whether activity or application usage is presently occurring on        an audio signal source device;    -   is a user actively and presently using an audio signal source;        and    -   whether a connectable audio output device is compatible with an        operating system of each of the audio signal source devices.

In some implementations, the scoring and smart routing can be disabledunder certain circumstances, such as where an older audio output deviceis used, if any device has been idle in its activity for an extended,predetermined amount of time, or if a device has not been connected to anetwork or other device for an extended, predetermined amount of time.The decision to disable the scoring and smart routing can be regularlyre-evaluated, and restarted under predetermined, user-selectable orfactory-established conditions.

In accordance with the disclosure herein, the inputs used to calculatethe audio routing score (user activity, duration of activity or timesince last activity, audio generating application activity—such asnotifications, alerts, music, voicemails, ringtones, alarms, newtelephone calls, etc.—or other factors) can each be weighted so as toinfluence the final audio routing score for a given audio signal sourcedevice in a given audio generation event or situation. FIG. 2 is amatrix illustrating auto-routing arbitration that can be employed amongmultiple audio signal source devices, when one audio signal sourcedevice attempts to acquire, “steal” or “hijack” an audio output devicefor outputting one of a number of playing audio signals.

Once an audio routing score is calculated for each audio signal sourcedevice, the score can be advertised to other audio signal source deviceswithin a geographical range, which range can coincide with a range of awireless communication technology being used to communicate the audiosignals, such as Bluetooth for example.

FIGS. 3A, 3B and 3C illustrate a scenario 300, an operational sequence320, and user interfaces 340 for user interaction, respectively, foropportunistic connection by a second audio signal source device 302 toan audio output device 304 that is already connected in a triangleconnectivity scenario 301 with other first audio signal source devices306 and 308, such as a smart watch and a smart phone, and as shown inFIG. 1A. The audio signal source devices 302, 306 and/or 308 can becontinually executing a smart routing algorithm. The second audio signalsource device 302 can be moving toward being in range of the audiooutput device 304, and active in a manner that has a higher audiorouting score than either of the first audio signal source devices 306and 308.

In the scenario 300, one of the first audio signal source devices, suchas the smart phone 308, can be designated as master of the set of firstaudio signal source devices 306 and 308. The master device 308 candetect a presence of the second audio signal source device 302 withinrange of a wireless signal, update its triangle table, and, if thesecond audio signal source device 302 has a higher audio routing scorethan either first audio signal source devices 306 or 308, disconnect thecurrently-communicating first audio signal source devices 306 or 308from the audio output device 304, and allow the second audio signalsource device 302 to connect and communicate and audio signal with theaudio output device 304. Based on a continuous execution of the smartrouting algorithm, if the master device 308 detects inactivity and/ordisconnection by the second audio signal source device 302 from theaudio output device 304, such that its audio routing score drops belowthe score of either first audio signal source device 306 or 308, thenthe master device 308 can “hijack” or unilaterally re-establishconnection and communication with the audio output device 304.

FIG. 3B illustrates a timing diagram of sequential steps of the smartrouting algorithm as executed by the devices 302, 304, 306 and 308, eachof which are able to acknowledge (“ACK”) connectivity and communicationor disconnection and suspension of communication with the audio outputdevice 304.

While the smart routing algorithm can be continuously and automaticallyexecuted by the devices 302, 304, 306 and 308, a set of graphicalprompts can be generated and displayed on an interactive display of anyof the devices, as shown in FIG. 3C, so as to inform a user of a pendingconnectivity and communication decision, and/or to receive useracknowledgement or instruction as to whether such decision should beenacted or made. In some instances, the graphical prompts can allow auser to reverse a decision of the smart routing algorithm, before thedecision is enacted or after the decision has been enacted to revert toa previous communication state. These graphical prompts can be generatedby the graphical user interface in the display, based on notificationsgenerated by the smart routing system and algorithm. As shown in FIG. 2,whether a graphical prompt is generated and displayed can be based on anaudio routing score, or on a mapping of an audio routing score from onedevice to another.

In some implementations, the audio generated by audio signal sourcedevices can be characterized and prioritized, as shown in FIG. 2. Theprioritization scheme, for example prioritizing a phone call ring toneover a music streaming application, can be adjusted manually orautomatically. For instance, a user can be prompted to enter a priorityscheme of various possible audio inputs for their audio output device.In other cases, an algorithm can be used to “learn” from historical userbehavior as to what the user prioritizes and when, and using a certainaudio signal source device. For instance, the user may grant a higherpriority to a music streaming application on their laptop computer thana music streaming application on their smart phone.

FIGS. 4A-4F illustrate various use cases of a smart routing methodaccording to implementations described herein, where an audio outputdevice is a set of earbuds, such as AirPods. FIG. 4A illustrates anexample where a user walks away from a previously-used first audiosignal source device, such as a laptop computer, and to being in rangeto a second audio signal source device. FIG. 4B illustrates an examplewhere a user switches from one audio signal source device to another,and provides notice of the switching when prompted. FIG. 4C illustratesan example of a switch from a first audio signal source device to asecond audio signal source device, while playing music on the firstaudio signal source device, and using an automatic move routingfunction.

FIG. 4D illustrates an example of a switch from a first audio signalsource device to a second audio signal source device, while playingmusic on the first audio signal source device, and using a desiredrouting. FIG. 4E illustrates an example of a switch from a first audiosignal source device to a second audio signal source device, whileplaying music on the first audio signal source device, and using a moverouting function based on a user input to acknowledge a graphicalprompt. FIG. 4F illustrates an example where a user accepts a call on anaudio signal source device while listening to music on the same device,and despite getting a call on a second device.

One or more aspects or features of the subject matter described hereincan be realized in digital electronic circuitry, integrated circuitry,specially designed application specific integrated circuits (ASICs),field programmable gate arrays (FPGAs) computer hardware, firmware,software, and/or combinations thereof. These various aspects or featurescan include implementation in one or more computer programs that areexecutable and/or interpretable on a programmable system including atleast one programmable processor, which can be special or generalpurpose, coupled to receive data and instructions from, and to transmitdata and instructions to, a storage system, at least one input device,and at least one output device. The programmable system or computingsystem may include clients and servers. A client and server aregenerally remote from each other and typically interact through acommunication network. The relationship of client and server arises byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other.

These computer programs, which can also be referred to programs,software, software applications, applications, components, or code,include machine instructions for a programmable processor, and can beimplemented in a high-level procedural language, an object-orientedprogramming language, a functional programming language, a logicalprogramming language, and/or in assembly/machine language. As usedherein, the term “machine-readable medium” refers to any computerprogram product, apparatus and/or device, such as for example magneticdiscs, optical disks, memory, and Programmable Logic Devices (PLDs),used to provide machine instructions and/or data to a programmableprocessor, including a machine-readable medium that receives machineinstructions as a machine-readable signal. The term “machine-readablesignal” refers to any signal used to provide machine instructions and/ordata to a programmable processor. The machine-readable medium can storesuch machine instructions non-transitorily, such as for example as woulda non-transient solid-state memory or a magnetic hard drive or anyequivalent storage medium. The machine-readable medium can alternativelyor additionally store such machine instructions in a transient manner,such as for example as would a processor cache or other random accessmemory associated with one or more physical processor cores.

To provide for interaction with a user, one or more aspects or featuresof the subject matter described herein can be implemented on a computerhaving a display device, such as for example a cathode ray tube (CRT) ora liquid crystal display (LCD) or a light emitting diode (LED) monitorfor displaying information to the user and a keyboard and a pointingdevice, such as for example a mouse or a trackball, by which the usermay provide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well. For example, feedbackprovided to the user can be any form of sensory feedback, such as forexample visual feedback, auditory feedback, or tactile feedback; andinput from the user may be received in any form, including, but notlimited to, acoustic, speech, or tactile input. Other possible inputdevices include, but are not limited to, touch screens or othertouch-sensitive devices such as single or multi-point resistive orcapacitive trackpads, voice recognition hardware and software, opticalscanners, optical pointers, digital image capture devices and associatedinterpretation software, and the like.

In the descriptions above and in the claims, phrases such as “at leastone of” or “one or more of” may occur followed by a conjunctive list ofelements or features. The term “and/or” may also occur in a list of twoor more elements or features. Unless otherwise implicitly or explicitlycontradicted by the context in which it used, such a phrase is intendedto mean any of the listed elements or features individually or any ofthe recited elements or features in combination with any of the otherrecited elements or features. For example, the phrases “at least one ofA and B;” “one or more of A and B;” and “A and/or B” are each intendedto mean “A alone, B alone, or A and B together.” A similarinterpretation is also intended for lists including three or more items.For example, the phrases “at least one of A, B, and C;” “one or more ofA, B, and C;” and “A, B, and/or C” are each intended to mean “A alone, Balone, C alone, A and B together, A and C together, B and C together, orA and B and C together.” Use of the term “based on,” above and in theclaims is intended to mean, “based at least in part on,” such that anunrecited feature or element is also permissible.

The subject matter described herein can be embodied in systems,apparatus, methods, and/or articles depending on the desiredconfiguration. The implementations set forth in the foregoingdescription do not represent all implementations consistent with thesubject matter described herein. Instead, they are merely some examplesconsistent with aspects related to the described subject matter.Although a few variations have been described in detail above, othermodifications or additions are possible. In particular, further featuresand/or variations can be provided in addition to those set forth herein.For example, the implementations described above can be directed tovarious combinations and subcombinations of the disclosed featuresand/or combinations and subcombinations of several further featuresdisclosed above. In addition, the logic flows depicted in theaccompanying figures and/or described herein do not necessarily requirethe particular order shown, or sequential order, to achieve desirableresults. Other implementations may be within the scope of the followingclaims.

What is claimed is:
 1. A method executed by two or more audio signalsource devices for routing communication to a common audio output deviceconnected to each of the audio signal source devices, the methodcomprising: assessing, for each of the two or more audio signal sourcedevices, a set of inputs comprising an operational state of the audiosignal source device, an activity the audio signal source device, anaudio-producing application being executed by the audio signal sourcedevice, and a degree of user activity with the audio-producingapplication being executed by the audio signal source; generating, at apoint in time, an audio routing score for each of the two or more audiosignal source devices according to a weighted calculation of the set ofinputs based on the assessing; and determining an audio signal routingdecision to route an audio signal from one of the two or more audiosignal source devices to the audio output device, based on the audiorouting score for each of the two or more audio signal source devices.2. The method in accordance with claim 1, wherein the assessing,generating, and determining are performed by an operating system orfirmware of at least one of the two or more audio signal source devices.3. The method in accordance with claim 1, wherein the audio-producingapplication is one of an alert or sound effect, an audio streamingapplication, a ringtone or alarm, and a call notification.
 4. The methodin accordance with claim 1, wherein each of operational state of theaudio signal source device, an activity the audio signal source device,an audio-producing application being executed by the audio signal sourcedevice, and a degree of user activity with the audio-producingapplication being executed by the audio signal source includes a timeduration threshold.
 5. The method in accordance with claim 1, furthercomprising routing the audio signal from the selected one of the two ormore audio signal source devices.
 6. The method in accordance with claim5, wherein routing the audio signal further comprises: disconnecting afirst of the two or more audio signal source devices from the audiooutput device; and connecting a second of the two or more audio signalsource devices to the audio output device.
 7. A system for routingcommunication to a common audio output device connected to each of twoor more audio signal source devices, the system comprising: computerhardware configured to perform operations comprising: assess, for eachof the two or more audio signal source devices, a set of inputscomprising an operational state of the audio signal source device, anactivity the audio signal source device, an audio-producing applicationbeing executed by the audio signal source device, and a degree of useractivity with the audio-producing application being executed by theaudio signal source; generate, at a point in time, an audio routingscore for each of the two or more audio signal source devices accordingto a weighted calculation of the set of inputs based on the assessing;and determine an audio signal routing decision to route an audio signalfrom one of the two or more audio signal source devices to the audiooutput device, based on the audio routing score for each of the two ormore audio signal source devices.
 8. The system in accordance with claim7, wherein the assessing, generating, and determining are performed byan operating system or firmware of at least one of the two or more audiosignal source devices.
 9. The system in accordance with claim 7, whereinthe audio-producing application is one of an alert or sound effect, anaudio streaming application, a ringtone or alarm, and a callnotification.
 10. The system in accordance with claim 7, wherein each ofoperational state of the audio signal source device, an activity theaudio signal source device, an audio-producing application beingexecuted by the audio signal source device, and a degree of useractivity with the audio-producing application being executed by theaudio signal source includes a time duration threshold.
 11. The systemin accordance with claim 7, wherein the operations further compriserouting the audio signal from the selected one of the two or more audiosignal source devices.
 12. The system in accordance with claim 11,wherein routing the audio signal further comprises: disconnecting afirst of the two or more audio signal source devices from the audiooutput device; and connecting a second of the two or more audio signalsource devices to the audio output device.
 13. A system as in claim 7,wherein the computer hardware comprises a programmable processor; and anon-transitory machine-readable medium storing instructions that, whenexecuted by the processor, cause the at least one programmable processorto perform at least some of the operations.
 14. A computer programproduct for routing communication to a common audio output deviceconnected to each of the audio signal source devices, the computerprogram product comprising: a programmable processor; and anon-transitory machine-readable medium storing instructions that, whenexecuted by the processor, cause the at least one programmable processorto perform operations comprising: assessing, for each of the two or moreaudio signal source devices, a set of inputs comprising an operationalstate of the audio signal source device, an activity the audio signalsource device, an audio-producing application being executed by theaudio signal source device, and a degree of user activity with theaudio-producing application being executed by the audio signal source;generating, at a point in time, an audio routing score for each of thetwo or more audio signal source devices according to a weightedcalculation of the set of inputs based on the assessing; and determiningan audio signal routing decision to route an audio signal from one ofthe two or more audio signal source devices to the audio output device,based on the audio routing score for each of the two or more audiosignal source devices.
 15. The method in accordance with claim 14,wherein instructions stored by the non-transitory machine-readablemedium for performing the assessing, generating, and determining is anoperating system of at least one of the two or more audio signal sourcedevices.
 16. The computer program product in accordance with claim 1,wherein the audio-producing application is one of an alert or soundeffect, an audio streaming application, a ringtone or alarm, and a callnotification.
 17. The computer program product in accordance with claim1, wherein each of operational state of the audio signal source device,an activity the audio signal source device, an audio-producingapplication being executed by the audio signal source device, and adegree of user activity with the audio-producing application beingexecuted by the audio signal source includes a time duration threshold.18. The computer program product in accordance with claim 1, furthercomprising routing the audio signal from the selected one of the two ormore audio signal source devices.
 19. The computer program product inaccordance with claim 5, wherein routing the audio signal furthercomprises: disconnecting a first of the two or more audio signal sourcedevices from the audio output device; and connecting a second of the twoor more audio signal source devices to the audio output device.
 20. Thecomputer program product in accordance with claim 14, wherein thenon-transitory machine-readable medium storing instructions forperforming the assessing, generating, and determining is firmware of atleast one of the two or more audio signal source devices.